/**
 * https://leetcode-cn.com/problems/minimum-moves-to-equal-array-elements
 * 最小操作数使数组元素相同
 *  思路：首先n-1个数加1 等价 1个数减1  比如加1：[1,2,3]->[2,3,3]  等价 减1:[1,2,3]->[1,2,2]
 *  所以count = （所有元素-最小值） 之和
 * @param nums 
 */
const minMoves = (nums: number[]): number => {
    const len = nums.length;
    // 1. 求最小值
    let min = nums[0]
    for (let i = 1; i < len; i++) {
        if (nums[i] < min) min = nums[i]
    }

    // 2. 最后一个元素和第一个的差就是要移动的最小次数
    let ans = 0

    for (let i = 0; i < len; i++) {
        ans += nums[i] - min
    }

    return ans
};